介紹完MADDPG,我們接著會實做些使用MADDPG的遊戲,如果之前在PettingZoo的章節看介紹的話,會發現裡面有很多經典的例子,或是有些人用多智能體做機器人的研究,不過我們這就用OpenAI非常純粹的遊戲環境,particle-envs,雖然畫面看起來挺單純,但其實裡面包含許多,合作、競爭以及通訊的設計,非常適合用來做實驗,接下來我們就來一起跑這個專案研究吧!
為了提供方便與簡潔的多智能體實驗環境,OpenAI推出了九個實驗環境方便大家實驗與設計自己的演算法。依照每個應用場景,主要分由是否通訊、是否為競爭關係,兩個種類去構成。
因為是2018的專案了,基本上也不會有太大更新以及維護,python的版本建議是用3.7,不過官方有指定的依賴版本,可以參考官方建議
以下是我的版本
看是要跑系統的還是虛擬的環境,接下來就可以來安裝套件,
git clone git@github.com:openai/multiagent-particle-envs.git
cd multiagent-particle-envs
這邊有兩個地方會需要修改
#try:
# import pyglet
#except ImportError as e:
# reraise(suffix="HINT: you can install pyglet directly via 'pip install pyglet'. But if you really just want to install all Gym dependencies and not have to think about it, 'pip install -e .[all]' or 'pip install gym[all]' will do it.")
#try:
# from pyglet.gl import *
#except ImportError as e:
# reraise(prefix="Error occured while running `from pyglet.gl import *`",suffix="HINT: make sure you have OpenGL install. On Ubuntu, you can run 'apt-get install python-opengl'. If you're running on a server, you may need a virtual frame buffer; something like this should work: 'xvfb-run -s \"-screen 0 1400x900x24\" python <your_script.py>'")
import pyglet
from pyglet.gl import *
#from gym.spaces import prng
Run code,scenario後面的參數可以跑你想看的實驗環境
bin/interactive.py --scenario simple_world_comm.py
如果有看到畫面出來,那就代表沒問題囉!
畢竟是OpenAI的專案,實驗的種類跟程式架構都算蠻整潔的,雖然好像2018~2020後就還沒看到其他更簡潔、多元的框架,不過目前看來是夠用的。下一張章節就來配合演算法,跑看實驗吧!